# week05 2021/09/27 数据结构之列表
# Author: Simin

# names = "zhichao,youge,xiaoming,xiaohong"
# print(names[1])
users_list = ["zhichao","youge","xiaoming"]
password_list = [123456,789654,278955]
age_list = [23,28,18]

# 列表的嵌套 (格式：list_name[index1][index2])
info_list = [["zhichao",123456,23],["youge",123456,28]]

print(users_list[0])
print(password_list[0])
print(age_list[0])
print(info_list[-1])

# -3，-2，-1，0，1，2
names = ["Mike","Mary","Jan","Jack"] # 0 1 2 3
# 知识点
# slices（切片：取多个值） 数值是指 values 在 lists 中的位置

# 1.正向取值
# list 取值 ”：“右边的值取不到 例如[1:3] 3 这个位置取不到
print(names[1:3]) # 1-2
print(names[0:2]) # 0-1
#如果 左侧的值是0 即从0开始取值，0可以省略不写
print(names[:2]) # 0-1

# 2.反向取值
# list 取值 “：”右边的值取不到，例如[-3:-1] -1 这个位置取不到
# 注意：取到最后一个值，不能写0 省略不写即可
print(names[-3:1])

numbers = [1,2,3,4,5,6,7,8,9]
# 对比 range
print(list(range(10)))
print(numbers[:6:2])
# range 函数语法
# range(start,stop[step])
#
# start: 计数从 start 开始。默认是从 0 开始。例如range（5）等价于range（0， 5）;
# stop: 计数到 stop 结束，但不包括 stop。例如：range（0， 5） 是[0, 1, 2, 3, 4]没有5
# step：步长，默认为1。例如：range（0 ，5） 等价于 range(0, 5, 1)


# 扩展知识点：列表方法
# 方法的调用方法：
#
# append：在列表末尾追加新的对象。【直接修改原来的列表】lst.append(3)
#
# count：统计某个元素在列表中出现的次数。x.count(1)
#
# extend：在列表的末尾一次性追加另个序列中的多个值，也就是用新列表扩展原有列表【修改了原有列表】。a.extend(b)
#
# index：从列表中找出某个值第一个匹配项的索引位置。numbers.index(2)
#
# insert：将对象插入到列表中。numbers.insert(3,"four")【改变列表】
#
# pop: delete 移除列表中的一个元素，默认最后一个，并返回该元素的值x.pop()【改变列表】
#
# remove：delete 移除列表中某个值的第一个匹配项。x.remove('be')【改变列表】
#
# reverse: 将列表中的元素反向存放。【改变列表】
#
# sort：排序，在原位置对列表排序【改变原来的列表】。